/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.agi.ia.kohonen;

import java.io.IOException;

/**
 *
 * @author renatogrosz
 */
public class Treinador {
    private Camada camada;
    private String[] fileNames;
    private LeitorData leitorData;
    private double raio;
    private double fatorAtualizacao;
    public Treinador(ParametroTreinador parametro){
        if(parametro==null){
            throw new NullPointerException("Parametro nao pode ser nulo");
        }
        this.camada=parametro.getCamada();                
        this.fileNames=parametro.getFileNames();
        this.leitorData=new LeitorData();
        this.fatorAtualizacao=1;
        this.raio=1;
    }
    
    public void setFatorAtualizacao(double fatorAtualizacao){
        this.fatorAtualizacao=fatorAtualizacao;
    }
    
    public void setRaio(double raio){
        this.raio=raio;
    }
    
    public void treinar() throws IOException{        
        leitorData.setFileNames(fileNames);
        camada.setFatorAtualizacao(fatorAtualizacao);
        for(Dados item : leitorData){
            camada.calcularEntrada(item.getDados());
            camada.calcularVencedor();
            camada.atualizarCamada(raio);            
        }
    }    
}
